package tech.lq0.mineapex.model;// Made with Blockbench 4.6.4
// Exported for Minecraft version 1.15 - 1.16 with MCP mappings
// Paste this class into your mod and generate all required imports


import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.entity.model.EntityModel;
import net.minecraft.client.renderer.model.ModelRenderer;
import tech.lq0.mineapex.entity.BocekArrowEntity;

import javax.annotation.ParametersAreNonnullByDefault;

public class BocekArrowEntityModel extends EntityModel<BocekArrowEntity> {
    private final ModelRenderer bone;
    private final ModelRenderer bone7;
    private final ModelRenderer bone4;
    private final ModelRenderer cube_r1;
    private final ModelRenderer cube_r2;
    private final ModelRenderer cube_r3;
    private final ModelRenderer cube_r4;
    private final ModelRenderer cube_r5;
    private final ModelRenderer bone5;
    private final ModelRenderer cube_r6;
    private final ModelRenderer cube_r7;
    private final ModelRenderer cube_r8;
    private final ModelRenderer cube_r9;
    private final ModelRenderer cube_r10;
    private final ModelRenderer bone6;
    private final ModelRenderer cube_r11;
    private final ModelRenderer cube_r12;
    private final ModelRenderer cube_r13;
    private final ModelRenderer cube_r14;
    private final ModelRenderer cube_r15;
    private final ModelRenderer bone2;
    private final ModelRenderer cube_r16;
    private final ModelRenderer cube_r17;
    private final ModelRenderer cube_r18;
    private final ModelRenderer cube_r19;
    private final ModelRenderer bone3;
    private final ModelRenderer cube_r20;
    private final ModelRenderer cube_r21;
    private final ModelRenderer cube_r22;
    private final ModelRenderer cube_r23;

    public BocekArrowEntityModel() {
        textureWidth = 64;
        textureHeight = 64;

        bone = new ModelRenderer(this);
        bone.setRotationPoint(0.0F, 23.5F, 0.0F);
        setRotationAngle(bone, 0.0F, -1.5708F, 1.5708F);
        bone.setTextureOffset(0, 0).addBox(-0.1F, -0.1F, -10.5F, 0.2F, 0.2F, 20.1F, 0.0F, false);
        bone.setTextureOffset(0, 0).addBox(-0.05F, -0.05F, 9.5F, 0.1F, 0.1F, 1.1F, 0.0F, false);

        bone7 = new ModelRenderer(this);
        bone7.setRotationPoint(0.0F, 0.0F, -9.0F);
        bone.addChild(bone7);


        bone4 = new ModelRenderer(this);
        bone4.setRotationPoint(0.0F, 0.0F, 0.0F);
        bone7.addChild(bone4);
        bone4.setTextureOffset(0, 1).addBox(-0.05F, -0.6F, 0.0F, 0.1F, 0.6F, 1.0F, 0.0F, false);

        cube_r1 = new ModelRenderer(this);
        cube_r1.setRotationPoint(0.0F, 0.0619F, 2.0437F);
        bone4.addChild(cube_r1);
        setRotationAngle(cube_r1, -0.5236F, 0.0F, 0.0F);
        cube_r1.setTextureOffset(0, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.2F, 0.35F, 0.0F, false);

        cube_r2 = new ModelRenderer(this);
        cube_r2.setRotationPoint(0.0F, 0.0258F, 1.0383F);
        bone4.addChild(cube_r2);
        setRotationAngle(cube_r2, -0.3491F, 0.0F, 0.0F);
        cube_r2.setTextureOffset(0, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.2F, 0.5F, 0.0F, false);

        cube_r3 = new ModelRenderer(this);
        cube_r3.setRotationPoint(0.0F, -0.3031F, 1.158F);
        bone4.addChild(cube_r3);
        setRotationAngle(cube_r3, -0.3491F, 0.0F, 0.0F);
        cube_r3.setTextureOffset(0, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.35F, 1.0F, 0.0F, false);

        cube_r4 = new ModelRenderer(this);
        cube_r4.setRotationPoint(0.0F, 0.738F, -0.5136F);
        bone4.addChild(cube_r4);
        setRotationAngle(cube_r4, 1.2217F, 0.0F, 0.0F);
        cube_r4.setTextureOffset(0, 0).addBox(-0.05F, -0.225F, 0.75F, 0.1F, 0.4F, 0.25F, 0.0F, false);

        cube_r5 = new ModelRenderer(this);
        cube_r5.setRotationPoint(0.0F, 0.2151F, -0.6214F);
        bone4.addChild(cube_r5);
        setRotationAngle(cube_r5, 0.6981F, 0.0F, 0.0F);
        cube_r5.setTextureOffset(0, 0).addBox(-0.05F, -0.225F, 0.5F, 0.1F, 0.4F, 0.5F, 0.0F, false);

        bone5 = new ModelRenderer(this);
        bone5.setRotationPoint(0.0F, 0.0F, 0.0F);
        bone7.addChild(bone5);
        setRotationAngle(bone5, 0.0F, 0.0F, 2.0944F);
        bone5.setTextureOffset(4, 0).addBox(-0.05F, -0.6F, 0.0F, 0.1F, 0.6F, 1.0F, 0.0F, false);

        cube_r6 = new ModelRenderer(this);
        cube_r6.setRotationPoint(0.0F, 0.0619F, 2.0437F);
        bone5.addChild(cube_r6);
        setRotationAngle(cube_r6, -0.5236F, 0.0F, 0.0F);
        cube_r6.setTextureOffset(4, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.2F, 0.35F, 0.0F, false);

        cube_r7 = new ModelRenderer(this);
        cube_r7.setRotationPoint(0.0F, 0.0258F, 1.0383F);
        bone5.addChild(cube_r7);
        setRotationAngle(cube_r7, -0.3491F, 0.0F, 0.0F);
        cube_r7.setTextureOffset(4, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.2F, 0.5F, 0.0F, false);

        cube_r8 = new ModelRenderer(this);
        cube_r8.setRotationPoint(0.0F, -0.3031F, 1.158F);
        bone5.addChild(cube_r8);
        setRotationAngle(cube_r8, -0.3491F, 0.0F, 0.0F);
        cube_r8.setTextureOffset(4, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.35F, 1.0F, 0.0F, false);

        cube_r9 = new ModelRenderer(this);
        cube_r9.setRotationPoint(0.0F, 0.738F, -0.5136F);
        bone5.addChild(cube_r9);
        setRotationAngle(cube_r9, 1.2217F, 0.0F, 0.0F);
        cube_r9.setTextureOffset(4, 0).addBox(-0.05F, -0.225F, 0.75F, 0.1F, 0.4F, 0.25F, 0.0F, false);

        cube_r10 = new ModelRenderer(this);
        cube_r10.setRotationPoint(0.0F, 0.2151F, -0.6214F);
        bone5.addChild(cube_r10);
        setRotationAngle(cube_r10, 0.6981F, 0.0F, 0.0F);
        cube_r10.setTextureOffset(4, 0).addBox(-0.05F, -0.225F, 0.5F, 0.1F, 0.4F, 0.5F, 0.0F, false);

        bone6 = new ModelRenderer(this);
        bone6.setRotationPoint(0.0F, 0.0F, 0.0F);
        bone7.addChild(bone6);
        setRotationAngle(bone6, 0.0F, 0.0F, -2.0944F);
        bone6.setTextureOffset(9, 0).addBox(-0.05F, -0.6F, 0.0F, 0.1F, 0.6F, 1.0F, 0.0F, false);

        cube_r11 = new ModelRenderer(this);
        cube_r11.setRotationPoint(0.0F, 0.0619F, 2.0437F);
        bone6.addChild(cube_r11);
        setRotationAngle(cube_r11, -0.5236F, 0.0F, 0.0F);
        cube_r11.setTextureOffset(9, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.2F, 0.35F, 0.0F, false);

        cube_r12 = new ModelRenderer(this);
        cube_r12.setRotationPoint(0.0F, 0.0258F, 1.0383F);
        bone6.addChild(cube_r12);
        setRotationAngle(cube_r12, -0.3491F, 0.0F, 0.0F);
        cube_r12.setTextureOffset(9, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.2F, 0.5F, 0.0F, false);

        cube_r13 = new ModelRenderer(this);
        cube_r13.setRotationPoint(0.0F, -0.3031F, 1.158F);
        bone6.addChild(cube_r13);
        setRotationAngle(cube_r13, -0.3491F, 0.0F, 0.0F);
        cube_r13.setTextureOffset(9, 0).addBox(-0.05F, -0.225F, -0.25F, 0.1F, 0.35F, 1.0F, 0.0F, false);

        cube_r14 = new ModelRenderer(this);
        cube_r14.setRotationPoint(0.0F, 0.738F, -0.5136F);
        bone6.addChild(cube_r14);
        setRotationAngle(cube_r14, 1.2217F, 0.0F, 0.0F);
        cube_r14.setTextureOffset(9, 0).addBox(-0.05F, -0.225F, 0.75F, 0.1F, 0.4F, 0.25F, 0.0F, false);

        cube_r15 = new ModelRenderer(this);
        cube_r15.setRotationPoint(0.0F, 0.2151F, -0.6214F);
        bone6.addChild(cube_r15);
        setRotationAngle(cube_r15, 0.6981F, 0.0F, 0.0F);
        cube_r15.setTextureOffset(9, 0).addBox(-0.05F, -0.225F, 0.5F, 0.1F, 0.4F, 0.5F, 0.0F, false);

        bone2 = new ModelRenderer(this);
        bone2.setRotationPoint(-0.3247F, 0.0F, 9.5129F);
        bone.addChild(bone2);


        cube_r16 = new ModelRenderer(this);
        cube_r16.setRotationPoint(0.0F, 0.0F, 0.0F);
        bone2.addChild(cube_r16);
        setRotationAngle(cube_r16, 0.0F, -1.1781F, 0.0F);
        cube_r16.setTextureOffset(0, 0).addBox(0.15F, -0.05F, -0.75F, 0.1F, 0.1F, 0.55F, 0.0F, false);

        cube_r17 = new ModelRenderer(this);
        cube_r17.setRotationPoint(0.3247F, 0.0F, 0.4871F);
        bone2.addChild(cube_r17);
        setRotationAngle(cube_r17, 0.0F, -0.3927F, 0.0F);
        cube_r17.setTextureOffset(0, 0).addBox(0.15F, -0.05F, -0.75F, 0.1F, 0.1F, 1.25F, 0.0F, false);

        cube_r18 = new ModelRenderer(this);
        cube_r18.setRotationPoint(0.3247F, 0.0F, 0.4871F);
        bone2.addChild(cube_r18);
        setRotationAngle(cube_r18, 0.0F, 0.3927F, 0.0F);
        cube_r18.setTextureOffset(0, 0).addBox(-0.25F, -0.05F, -0.75F, 0.1F, 0.1F, 1.25F, 0.0F, false);

        cube_r19 = new ModelRenderer(this);
        cube_r19.setRotationPoint(0.6494F, 0.0F, 0.0F);
        bone2.addChild(cube_r19);
        setRotationAngle(cube_r19, 0.0F, 1.1781F, 0.0F);
        cube_r19.setTextureOffset(0, 0).addBox(-0.25F, -0.05F, -0.75F, 0.1F, 0.1F, 0.55F, 0.0F, false);

        bone3 = new ModelRenderer(this);
        bone3.setRotationPoint(0.0F, 0.0F, 9.7385F);
        bone.addChild(bone3);
        setRotationAngle(bone3, 0.0F, 0.0F, 1.5708F);


        cube_r20 = new ModelRenderer(this);
        cube_r20.setRotationPoint(-0.3247F, 0.0F, -0.2256F);
        bone3.addChild(cube_r20);
        setRotationAngle(cube_r20, 0.0F, -1.1781F, 0.0F);
        cube_r20.setTextureOffset(0, 0).addBox(0.15F, -0.05F, -0.75F, 0.1F, 0.1F, 0.55F, 0.0F, false);

        cube_r21 = new ModelRenderer(this);
        cube_r21.setRotationPoint(0.0F, 0.0F, 0.2615F);
        bone3.addChild(cube_r21);
        setRotationAngle(cube_r21, 0.0F, -0.3927F, 0.0F);
        cube_r21.setTextureOffset(0, 0).addBox(0.15F, -0.05F, -0.75F, 0.1F, 0.1F, 1.25F, 0.0F, false);

        cube_r22 = new ModelRenderer(this);
        cube_r22.setRotationPoint(0.0F, 0.0F, 0.2615F);
        bone3.addChild(cube_r22);
        setRotationAngle(cube_r22, 0.0F, 0.3927F, 0.0F);
        cube_r22.setTextureOffset(0, 0).addBox(-0.25F, -0.05F, -0.75F, 0.1F, 0.1F, 1.25F, 0.0F, false);

        cube_r23 = new ModelRenderer(this);
        cube_r23.setRotationPoint(0.3247F, 0.0F, -0.2256F);
        bone3.addChild(cube_r23);
        setRotationAngle(cube_r23, 0.0F, 1.1781F, 0.0F);
        cube_r23.setTextureOffset(0, 0).addBox(-0.25F, -0.05F, -0.75F, 0.1F, 0.1F, 0.55F, 0.0F, false);
    }

    @Override
    @ParametersAreNonnullByDefault
    public void setRotationAngles(BocekArrowEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
        //previously the render function, render code was moved to a method below
    }

    @Override
    @ParametersAreNonnullByDefault
    public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
        bone.render(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }
}